<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require_once(FCPATH.'smarty/libs/Smarty.class.php');

class CI_Smarty extends Smarty {

    function __construct() {
        parent::__construct();

        /*
         * 此时的工作目录 getcwd() 仍为 入口文件 index.php 的位置
         * APPPATH 指定的aplication的位置就是相对于入口文件的，当然如果是绝对路径就更无仿了。
         * 所以此处可以直接对APPPATH取绝对路径 realpath()
         */
        $smarty_path = realpath(FCPATH).'/front/smarty/';
        $this->setTemplateDir($smarty_path.'templates');
        $this->setCompileDir($smarty_path.'templates_c');
        $this->setConfigDir($smarty_path.'configs');
        $this->setCacheDir($smarty_path.'cache');
        $this->addPluginsDir($smarty_path.'plugins');

        /*
         * 引入下列代码可在模板中使用ci函数。
         * 但会造成smarty debuging时消耗大量内存。
         */
        /* if (method_exists($this, 'assignByRef'))
        {
            $ci =& get_instance();
            $this->assignByRef("ci", $ci);
        }*/

        /* 
         * 开启缓存
         * 在模板被更改时更新缓存
         * 缓存120s过期
         */
        $this->caching = true;
        $this->compile_check = true;
        $this->cache_lifetime = 120;

        log_message('debug', "Smarty Class Initialized");
    }
}
/* End of Smarty.php */
